package reversi;



import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Pesos {

	private Mobilidade mobilidade;
	private NumeroPeca peca;
	private Paridade paridade;
	private Fronteira fronteira;
	private PontuacaoDaTabela pontuacao;
	private Padroes padroes;
	File arquivoPesos = new File("pesos.txt");


	public Pesos(){

		 mobilidade = new Mobilidade(0.5,0.1,0.05,1);
		 peca = new NumeroPeca(0,0.2,0.2,6);
		paridade = new Paridade(0,0.1,0.2,.1d);
		fronteira = new Fronteira(0.3,0.2,0.05,1.5d);
		 pontuacao = new PontuacaoDaTabela(0.2,0.3,0.4,30);
		padroes = new Padroes(0,0.1,0.2,200);

	}

	public Mobilidade getMobilidade() {
		return mobilidade;
	}

	public void setMobilidade(Mobilidade mobilidade) {
		this.mobilidade = mobilidade;
	}

	public NumeroPeca getPeca() {
		return peca;
	}


	public void setPeca(NumeroPeca peca) {
		this.peca = peca;
	}

	public Paridade getParidade() {
		return paridade;
	}

	public void setParidade(Paridade paridade) {
		this.paridade = paridade;
	}

	public Fronteira getFronteira() {
		return fronteira;
	}

	public void setFronteira(Fronteira fronteira) {
		this.fronteira = fronteira;
	}

	public PontuacaoDaTabela getPontuacao() {
		return pontuacao;
	}

	public void setPontuacao(PontuacaoDaTabela pontuacao) {
		this.pontuacao = pontuacao;
	}

	//	public String organizaPesos(){
	//		
	//	}

	public File getArquivoPesos() {
		return arquivoPesos;
	}

	//	public static void main(String[] args) throws IOException{
	//		
	//		Pesos p = new Pesos();
	//		p.gravaArquivo(3);
	//		p.gravaArquivo(4);
	//		
	//	}

	public void setArquivoPesos(File arquivoPesos) {
		this.arquivoPesos = arquivoPesos;
	}

	public void gravaArquivo(int numero) throws IOException {
		FileWriter out = new FileWriter(arquivoPesos, true);
		String st = "\nTreino numero " + numero + " :\n";
		out.append(st);
		out.append(mobilidade.toString());
		out.append(peca.toString());
		out.append(fronteira.toString());
		out.append(paridade.toString());
		out.append(pontuacao.toString());
		out.append(padroes.toString());
		out.close();

	}

	public Padroes getPadroes() {
		return padroes;
	}

	public void setPadroes(Padroes padroes) {
		this.padroes = padroes;
	}

	public void printwinner(String upperCase) throws IOException {
		FileWriter out = new FileWriter(arquivoPesos, true);
		out.append("Vencedor: "+upperCase);
		out.close();
	}
}
